package com.jeffgalper.feather;

import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.util.List;

public interface Featherable {
   String getUPath();

   byte[] getEPathToArray() throws FeatherException;

   ByteBuffer getEPathBytes() throws FeatherException;

   short getEPathSize() throws FeatherException;

   ByteBuffer getEPathSizeBytes() throws FeatherException;

   long getFileSize() throws FeatherException;

   ByteBuffer getFileSizeBytes() throws FeatherException;

   boolean isDirectory();

   void write(FileChannel fc) throws IOException, FeatherException;

   List<Featherable> getChildren() throws FeatherException;

   ByteBuffer getBitField();

   byte getBitFieldByte();
}
